package com.dkm.orproject.dkmoa.service.serviceimpl;

import com.dkm.orproject.dkmoa.dao.OaSchduleMapper;
import com.dkm.orproject.dkmoa.domain.OaSchdule;
import com.dkm.orproject.dkmoa.service.OaSchduleService;
import com.dkm.orproject.utils.utils.IdToobtainUtils;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 *  @ClassName : OaSchduleServiceImpl  //类名
 *  @Description : 日程的Service  //描述
 *  @Author : 石智诚  //作者
 *  @Date: 2020-11-17 14:30  //时间
 */
@Service
public class OaSchduleServiceImpl implements OaSchduleService {
    /**
     *  日程的mapper
     */
    @Resource
    OaSchduleMapper mapper;
    /**
     * 雪花算法
     */
    @Resource
    IdToobtainUtils utils;

    /**
     * 根据id删除日程
     * @param pkSchduleId 日程
     * @return 回调函数
     */
    @Override
    public int deleteByPrimaryKey(Long pkSchduleId) {
        return mapper.deleteByPrimaryKey(pkSchduleId);
    }

    /**
     * 增加日程
     * @param record 日程模型
     * @return 回调函数
     */
    @Override
    public int insertSelective(OaSchdule record) {
        record.setPkSchduleId(utils.getNumberId());
        record.setIsRevision("1");
        return mapper.insertSelective(record);
    }

    /**
     * 根据日程id查询
     * @param pkSchduleId 日程Id
     * @return 日程实体类
     */
    @Override
    public OaSchdule selectByPrimaryKey(Long pkSchduleId) {
        return mapper.selectByPrimaryKey(pkSchduleId);
    }

    /**
     * 更新日程
     * @param record 日程模型
     * @return 回调函数
     */
    @Override
    public int updateByPrimaryKeySelective(OaSchdule record) {
        return mapper.updateByPrimaryKeySelective(record);
    }

    /**
     * 查询所有
     * 查询所有
     * @param schdule 日程
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 数量
     */
    @Override
    public List<OaSchdule> findAll(OaSchdule schdule, Integer limit, Integer page, String startDate, String endDate) {
        if(page != null && page>0){
            PageHelper.startPage(page,limit);
        }
        return mapper.findAll(schdule,startDate,endDate);
    }

    /**
     * 统计
     * @param schdule 日程
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 数量
     */
    @Override
    public Long rowCount(OaSchdule schdule, String startDate, String endDate) {
        return mapper.rowCount(schdule,startDate,endDate);
    }

    /**
     * 批量删除
     * @param id 日程Id
     * @return 回调函数
     */
    @Override
    public int deleteAll(List<Long> id) {
        return mapper.deleteAll(id);
    }

    /**
     * 查询所有的删除的数据
     * @param id 日程Id
     * @return 集合
     */
    @Override
    public List<OaSchdule> selectAll(List<Long> id) {
        return mapper.selectAll(id);
    }

}
